plugins: VOsc/VOsc3 - fix crash with negative buffer numbers
[supercollider.git] / examples / GUI examples / SCScope view x,y plot.scd
blob6b03983545e76f03b14b80032ee4c4cd3106f0d2
1 //jmc 2003
3 The SCScope view 'style' property supports 3 styles:
4 0 = separate waveform plots
5 1 = overlapping waveform plots
6 2 = x,y plots of 2 channel pairs.
9 // create a window with a scope view
10 var f, s;
11 w = SCWindow("scope test", Rect(128, 64, 512, 512));
13 n = SCScope(w, Rect(10,10,480,480));
14 n.bufnum = 0;
15 n.background = Color.black;
16 n.resize = 5;
17 n.style = 2;
18 n.waveColors = [Color.yellow, Color.blue(1.2), Color.red, Color.green];
19 w.front;
22 // boot internal server
23 s = Server.internal;
24 s.boot;
26 // allocate a 2 channel buffer
27 s.sendMsg(\b_alloc, 0, 2048, 2);
29 // play a 2 channel sound into that buffer using ScopeOut.
31 z = {
32         var m, f;
33         f = SampleRate.ir / 64;
34         m = SinOsc.kr(0.001, 0, 0.8, 1).round(1/60);
35         ScopeOut.ar([SinOsc.ar(f + 0.01), SinOsc.ar(f * m)], 0)
36 }.play(s);
39 z.free;
42 z = {
43         var in, f;
44         f = MouseX.kr(40,8000,1);
45         in = {RLPF.ar(BrownNoise.ar(0.5), f, 0.3) }.dup;
46         ScopeOut.ar(in, 0);
47         Out.ar(0, in);
48 }.play(s);
51 z.free;
55 z = {
56         var in, f, pw;
57         f = MouseX.kr(40,8000,1);
58         pw = MouseY.kr(0.01,0.99);
59         in = RLPF.ar(Pulse.ar([100,100.2],pw,0.5), f, 0.1).softclip;
60         ScopeOut.ar(in, 0);
61         Out.ar(0, in);
62 }.play(s);
65 z.free;
68 z = {
69         var in, f;
70         f = MouseX.kr(40,8000,1);
71         in = RLPF.ar(Saw.ar([100,100.2],0.5), f, 0.1).softclip;
72         ScopeOut.ar(in, 0);
73         Out.ar(0, in);
74 }.play(s);
77 z.free;
81 // allocate a 4 channel buffer
82 s.sendMsg(\b_alloc, 0, 2048, 4);
86 z = {
87         var in, f, pw;
88         f = MouseX.kr(40,8000,1);
89         pw = MouseY.kr(0.01,0.99);
90         in = RLPF.ar(Pulse.ar([120,120.12, 200, 200.1],pw,0.5), f, 
91 0.1).softclip;
92         ScopeOut.ar(in, 0);
93         Out.ar(0, Mix(in.clump(2)) * 0.5);
94 }.play(s);
97 z.free;
99 n.style = 0;
100 n.style = 1;
101 n.style = 2;